package com.gph.saviorframework.base.dao;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created by root on 16-6-8.
 */
public interface BaseDao<T,K> {

    /**
     * 插入
     * @param t
     */
    void save(T t);

    /**
     * 批量插入，一次性事务提交
     * @param ts
     */
    void batchSave(List<T> ts);

    /**
     * 更新
     * @param t
     */
    void update(T t);

    /**
     * 批量更新
     * @param ts
     */
    void batchUpdate(List<T> ts);

    /**
     * 获取
     * @param id
     * @return
     */
    T get(@Param(value = "id") K id);

    /**
     * 根据主键删除
     * @param id
     */
    void deleteById(@Param(value = "id") K id);

    /**
     * 批量删除
     */
    void batchDelete(K[] ids);

    /**
     * 根据id获取map
     * @param id
     * @return
     */
    Map<String,Object> findById(@Param(value = "id") K id);
}
